package cn.com.headfree.mouldshow.dao;


import cn.com.headfree.entity.*;
import cn.com.headfree.entity.isc.User;

import com.gta.edu.sdk.common.dto.Page;

import java.util.List;

/**
 * 人资基本信息 dao 接口
 * @author smyl
 * @date 2020-06-23 15:59:50
 */
public interface HumanDataTempDao {

    //基本信息临时
    void getTEmpBaseInfoTempPageList(Page<TEmpBaseInfoTemp> page,String userName,String erpNo,String orgId);

    //学历信息临时
    void getTEducateInfoTempPageList(Page<TEducateInfoTemp> page,String userName,String erpNo,String orgId);

    //工作经历临时
    void getTWorkExpInfoTempPageList(Page<TWorkExpInfoTemp> page,String userName,String erpNo,String orgId);

    //继续教育及培训经历临时
    void getTContiStudyInfoTempPageList(Page<TContiStudyInfoTemp> page,String userName,String erpNo,String orgId);

    //个人荣誉信息临时
    void getTHonorInfoTempPageList(Page<THonorInfoTemp> page,String userName,String erpNo,String orgId);

    //竞赛考试信息临时
    void getTContestInfoTempPageList(Page<TContestInfoTemp> page,String userName,String erpNo,String orgId);

    //专家人才信息临时
    void getTExpertTitleInfoTempPageList(Page<TExpertTitleInfoTemp> page,String userName,String erpNo,String orgId);

    //专业技术资格信息临时
    void getTProTecInfoTempPageList(Page<TProTecInfoTemp> page,String userName,String erpNo,String orgId);

    //技能等级信息临时
    void getTSkillLevelInfoTempPageList(Page<TSkillLevelInfoTemp> page,String userName,String erpNo,String orgId);

    //导师带徒信息临时
    void getTSdtTutorPrentInfoTempPageList(Page<TSdtTutorPrentInfoTemp> page,String userName,String erpNo,String orgId);

    //年度绩效临时
    void getTYearEffectInfoTempPageList(Page<TYearEffectInfoTemp> page,String userName,String erpNo,String orgId);

    //学术成果临时
    void getTAcadeAchiveInfoTempPageList(Page<TAcadeAchiveInfoTemp> page,String userName,String erpNo,String orgId);

    //标准制定信息临时
    void getTStandInfoTempPageList(Page<TStandInfoTemp> page,String userName,String erpNo,String orgId);

    //专利信息临时
    void getTPatentInfoTempPageList(Page<TPatentInfoTemp> page,String userName,String erpNo,String orgId);

    //技艺革新信息临时
    void getTTecInnovInfoTempPageList(Page<TTecInnovInfoTemp> page,String userName,String erpNo,String orgId);

    //科技创新成果信息临时
    void getTTecManInnovTempPageList(Page<TTecManInnovTemp> page,String userName,String erpNo,String orgId);

    //项目课题成果信息临时
    void getTProjAchieveInfoTempPageList(Page<TProjAchieveInfoTemp> page,String userName,String erpNo,String orgId);

    //员工流动信息临时
    void getTEmployeeMobilityTempPageList(Page<TEmployeeMobilityTemp> page,String userName,String erpNo,String orgId);

    //挂职轮岗信息临时
    void getTRotationInfoTempPageList(Page<TRotationInfoTemp> page,String userName,String erpNo,String orgId);

    //绩效积分信息临时
    void getTPerformanceScoreTempPageList(Page<TPerformanceScoreTemp> page,String userName,String erpNo,String orgId);

    ////////////////////////////////////根据id获取单条数据///////////////////////////////////////////

    TEmpBaseInfoTemp getTEmpBaseInfoTempById(String id);

    TEducateInfoTemp getTEducateInfoTempById(String id);

    TWorkExpInfoTemp getTWorkExpInfoTempById(String id);

    TContiStudyInfoTemp getTContiStudyInfoTempById(String id);

    THonorInfoTemp getTHonorInfoTempById(String id);

    TContestInfoTemp getTContestInfoTempById(String id);

    TExpertTitleInfoTemp getTExpertTitleInfoTempById(String id);

    TProTecInfoTemp getTProTecInfoTempById(String id);

    TSkillLevelInfoTemp getTSkillLevelInfoTempById(String id);

    TSdtTutorPrentInfoTemp getTSdtTutorPrentInfoTempById(String id);

    TYearEffectInfoTemp getTYearEffectInfoTempById(String id);

    TAcadeAchiveInfoTemp getTAcadeAchiveInfoTempById(String id);

    TStandInfoTemp getTStandInfoTempById(String id);

    TPatentInfoTemp getTPatentInfoTempById(String id);

    TTecInnovInfoTemp getTTecInnovInfoTempById(String id);

    TTecManInnovTemp getTTecManInnovTempById(String id);

    TProjAchieveInfoTemp getTProjAchieveInfoTempById(String id);

    TEmployeeMobilityTemp getTEmployeeMobilityTempById(String id);

    TRotationInfoTemp getTRotationInfoTempById(String id);

    TPerformanceScoreTemp getTPerformanceScoreTempById(String id);



    ////////////////////////////////////根据单位id(org_id)获取所有数据，并用正式表实体接收///////////////////////////////////////////
    List<TEmpBaseInfo> getTEmpBaseInfoTempByOrgId(String id);

    List<TEducateInfo> getTEducateInfoTempByOrgId(String id);

    List<TWorkExpInfo> getTWorkExpInfoTempByOrgId(String id);

    List<TContiStudyInfo> getTContiStudyInfoTempByOrgId(String id);

    List<THonorInfo> getTHonorInfoTempByOrgId(String id);

    List<TContestInfo> getTContestInfoTempByOrgId(String id);

    List<TExpertTitleInfo> getTExpertTitleInfoTempByOrgId(String id);

    List<TProTecInfo> getTProTecInfoTempByOrgId(String id);

    List<TSkillLevelInfo> getTSkillLevelInfoTempByOrgId(String id);

    List<TSdtTutorPrentInfo> getTSdtTutorPrentInfoTempByOrgId(String id);

    List<TSdtPrentInfo> getTSdtPrentInfoTempByOrgId(String id);

    List<TSdtAward> getTSdtAwardTempByOrgId(String id);

    List<TYearEffectInfo> getTYearEffectInfoTempByOrgId(String id);

    List<TAcadeAchiveInfo> getTAcadeAchiveInfoTempByOrgId(String id);

    List<TStandInfo> getTStandInfoTempByOrgId(String id);

    List<TPatentInfo> getTPatentInfoTempByOrgId(String id);

    List<TTecInnovInfo> getTTecInnovInfoTempByOrgId(String id);

    List<TTecManInnov> getTTecManInnovTempByOrgId(String id);

    List<TProjAchieveInfo> getTProjAchieveInfoTempByOrgId(String id);

    List<TEmployeeMobility> getTEmployeeMobilityTempByOrgId(String id);

    List<TRotationInfo> getTRotationInfoTempByOrgId(String id);

    List<TPerformanceScoreTemp> getTPerformanceScoreTempByIds(String ids);

    //参与人员
    List<TPartRank> getTPartRankTempByOrgId(String id);


    /////////////////////////////////////////根据条件删除临时库信息/////////////////////////////////

    //基本信息临时
    void deleteTEmpBaseInfoTempByCondition(String orgId,String id);

    //学历信息临时
    void deleteTEducateInfoTempByCondition(String orgId,String id);

    //工作经历临时
    void deleteTWorkExpInfoTempByCondition(String orgId,String id);

    //继续教育及培训经历临时
    void deleteTContiStudyInfoTempByCondition(String orgId,String id);

    //个人荣誉信息临时
    void deleteTHonorInfoTempByCondition(String orgId,String id);

    //竞赛考试信息临时
    void deleteTContestInfoTempByCondition(String orgId,String id);

    //专家人才信息临时
    void deleteTExpertTitleInfoTempByCondition(String orgId,String id);

    //专业技术资格信息临时
    void deleteTProTecInfoTempByCondition(String orgId,String id);

    //技能等级信息临时
    void deleteTSkillLevelInfoTempByCondition(String orgId,String id);

    //导师带徒信息临时
    void deleteTSdtTutorPrentInfoTempByCondition(String orgId,String id);

    //导师带徒徒弟信息临时
    void deleteTSdtPrentInfoTempByCondition(String orgId, String sdtId);

    //导师带徒徒弟所获奖项信息临时
    void deleteTSdtAwardTempByCondition(String orgId, String sdtTdId);

    //年度绩效临时
    void deleteTYearEffectInfoTempByCondition(String orgId,String id);

    //学术成果临时
    void deleteTAcadeAchiveInfoTempByCondition(String orgId,String id);

    //标准制定信息临时
    void deleteTStandInfoTempByCondition(String orgId,String id);

    //专利信息临时
    void deleteTPatentInfoTempByCondition(String orgId,String id);

    //技艺革新信息临时
    void deleteTTecInnovInfoTempByCondition(String orgId,String id);

    //科技创新成果信息临时
    void deleteTTecManInnovTempByCondition(String orgId,String id);

    //项目课题成果信息临时
    void deleteTProjAchieveInfoTempByCondition(String orgId,String id);

    //员工流动信息临时
    void deleteTEmployeeMobilityTempByCondition(String orgId,String id);

    //挂职轮岗信息临时
    void deleteTRotationInfoTempByCondition(String orgId,String id);

    //绩效积分表临时
    void deleteTPerformanceScoreTempByCondition(String orgId,String id);

    //参与人员临时
    void deleteTPartRankTempByCondition(String orgId, String itemId);

    //////////////////////////////////////////////////////////////////////////////

    //根据类型ID获取参与人员信息
    List<TPartRankTemp> getTPartRankTempListByItemId(String itemId);

    //根据导师带徒表ID获取徒弟信息
    List<TSdtPrentInfoTemp> getTSdtPrentInfoTempListBySdtId(String sdtId);

    //根据导师带徒徒弟信息ID获取徒弟所获奖项
    List<TSdtAwardTemp> getTSdtAwardTempListBySdtTdId(String sdtTdId);


    ///////////////////////////////////根据ID进行修改/////////////////////////////////////

    /*
     *基本信息
     */
    void updateBaseInfoTempById(TEmpBaseInfoTemp tEmpBaseInfoTemp);

    /*
     *学历
     */
    void updateTEducateInfoTempById(TEducateInfoTemp tEducateInfoTemp);

    /*
     *工作经历
     */
    void updateTWorkExpInfoTempById(TWorkExpInfoTemp tWorkExpInfoTemp);

    /*
     *培训和授课
     */
    void updateTContiStudyInfoTempById(TContiStudyInfoTemp tContiStudyInfoTemp);

    /*
     *个人荣誉
     */
    void updateTHonorInfoTempById(THonorInfoTemp tHonorInfoTemp);

    /*
     *竞赛考试
     */
    void updateTContestInfoTempById(TContestInfoTemp tContestInfoTemp);

    /*
     *专家人才
     */
    void updateTExpertTitleInfoTempById(TExpertTitleInfoTemp tExpertTitleInfoTemp);

    /*
     *专业资格
     */
    void updateTProTecInfoTempById(TProTecInfoTemp tProTecInfoTemp);

    /*
     *技能等级
     */
    void updateTSkillLevelInfoTempById(TSkillLevelInfoTemp tSkillLevelInfoTemp);

    /*
     *导师带徒
     */
    void updateTSdtTutorPrentInfoTempById(TSdtTutorPrentInfoTemp tSdtTutorPrentInfoTemp);

    /*
     *年度绩效
     */
    void updateTYearEffectInfoTempById(TYearEffectInfoTemp tYearEffectInfoTemp);

    /*
     *学术成果
     */
    void updateTAcadeAchiveInfoTempById(TAcadeAchiveInfoTemp tAcadeAchiveInfoTemp);

    /*
     *标准制定
     */
    void updateTStandInfoTempById(TStandInfoTemp tStandInfoTemp);

    /*
     *专利信息
     */
    void updateTPatentInfoTempById(TPatentInfoTemp tPatentInfoTemp);

    /*
     *技艺革新
     */
    void updateTTecInnovInfoTempById(TTecInnovInfoTemp tTecInnovInfoTemp);

    /*
     *科技创新管理
     */
    void updateTTecManInnovTempById(TTecManInnovTemp tTecManInnovTemp);

    /*
     *项目课题成果
     */
    void updateTProjAchieveInfoTempById(TProjAchieveInfoTemp tProjAchieveInfoTemp);

    /*
     *绩效积分
     */
    void updateTPerformanceScoreTempById(TPerformanceScoreTemp tPerformanceScoreTemp);


}
